#pragma once
class Game;

enum GameStates{
	GS_NOSTATE,
	GS_Start,
	GS_Perface,
	GS_Paused,
	GS_SelectRole,
	GS_SelectVenue,
	GS_Selection2Fight,
	GS_Fight,
	GS_Finish
};

class StateMachine{
	GameStates StateBeforePaused;
	GameStates CurrentState;
private://functions
	void ItsBeginning();
	void ItsPerfaceing();
	void ItsPausing();
	void ItsResuming();
	void ItsRoleSelecting();
	void ItsVenueSelecting();
	void ItsSelection2Fight();
	void ItsFighting();
	void ItsFinishing();


	void PerformState(GameStates s);

public://states:

	void BeginGame();
	void FinishGame();

	void IntoPerface();
	void IntoRoleSelect();
	void IntoVenueSelect();
	void IntoSelection2Fight();
	void IntoFighting();

	void PauseGame();
	void ResumeGame();

	StateMachine(){CurrentState = StateBeforePaused = GS_NOSTATE; }
	void DrawAsCurrentState();
};

